package xgotool

import (
	"gitee.com/xiaoyutab/xgotool/xnum"
)

// 浮点数比较相等时的最小值
//
// 因为浮点数的精度存在丢失问题，所以浮点数的相同不能比较绝对的相等，而应该是在某一范围内相同
//
// 所以此处的相同浮点数范围表示为 0.000,000,1
const FLOAT_EQUAL_MIN = xnum.FLOAT_EQUAL_MIN

// 地球半径大小
// 用于计算两个经纬度间的距离
const EARTH_RADIUS = xnum.EARTH_RADIUS

// 判断两个浮点数是否相等
//
//	f1	待比较的浮点数
//	f2	待比较的浮点数
func IsEqualFloat64(f1, f2 float64) bool {
	return xnum.IsEqualFloat(f1, f2)
}

// 判断两个浮点数是否相等
//
//	f1	待比较的浮点数
//	f2	待比较的浮点数
func IsEqualFloat32(f1, f2 float32) bool {
	return xnum.IsEqualFloat(f1, f2)
}

// 计算经纬度之间的距离【返回单位：m】
// 计算公式：C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)
//
//	lat1	坐标点1的纬度
//	lng1	坐标点1的经度
//	lat1	坐标点2的纬度
//	lng2	坐标点2的经度
func EarthDistance(lat1, lng1, lat2, lng2 float64) float64 {
	return xnum.EarthDistance(lat1, lng1, lat2, lng2)
}
